package com.ruoyi.appuser.domain;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 用户对象 appuser
 *
 * @author ruoyi
 * @date 2024-01-14
 */
@TableName("appuser")
public class Appuser implements Serializable
{
    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.ASSIGN_ID)
    private String id;

    /** 用户昵称 */
    @Excel(name = "用户昵称")
    private String nickname;

    /** 真实名称 */
    @Excel(name = "真实名称")
    private String name;

    /** 用户头像 */
    @Excel(name = "用户头像")
    private String avatar;

    /** 手机号 */
    @Excel(name = "手机号")
    private String mobile;

    /** 用户openid */
    @Excel(name = "用户openid")
    private String openId;

    /** 用户unionid */
    @Excel(name = "用户unionid")
    private String unionId;

    /** 个性签名 */
    @Excel(name = "个性签名")
    private String introduction;

    /** 区域 */
    @Excel(name = "区域")
    private String region;

    /** 普通用户积分 */
    @Excel(name = "普通用户积分")
    private BigDecimal normalIntegral;

    /** vip积分 */
    @Excel(name = "vip积分")
    private BigDecimal vipIntegral;

    /** 是否会员1不是2是默认1 */
    @Excel(name = "是否会员1不是2是默认1")
    private Integer isVip;

    /** 开通vip时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "开通vip时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date vipTime;

    /** 签到天数 */
    @Excel(name = "签到天数")
    private Long day;

    /** 签到时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "签到时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date signTime;


    @Excel(name = "赛季记录id")
    private String playSeasonRecordId;

    /** 删除标识0不删除1删除默认0 */
    @Excel(name = "删除标识0不删除1删除默认0")
    private Integer isDeleted;

    /** 注销时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "注销时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date logoutTime;

    /** 注销标识（1.未注销 2注销中 3已注销）默认1 */
    @Excel(name = "注销标识", readConverterExp = "1=.未注销,2=注销中,3=已注销")
    private Integer logout;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public void setId(String id)
    {
        this.id = id;
    }

    public String getId()
    {
        return id;
    }
    public void setNickname(String nickname)
    {
        this.nickname = nickname;
    }

    public String getNickname()
    {
        return nickname;
    }
    public void setName(String name)
    {
        this.name = name;
    }

    public String getName()
    {
        return name;
    }
    public void setAvatar(String avatar)
    {
        this.avatar = avatar;
    }

    public String getAvatar()
    {
        return avatar;
    }
    public void setMobile(String mobile)
    {
        this.mobile = mobile;
    }

    public String getMobile()
    {
        return mobile;
    }
    public void setOpenId(String openId)
    {
        this.openId = openId;
    }

    public String getOpenId()
    {
        return openId;
    }
    public void setUnionId(String unionId)
    {
        this.unionId = unionId;
    }

    public String getUnionId()
    {
        return unionId;
    }
    public void setIntroduction(String introduction)
    {
        this.introduction = introduction;
    }

    public String getIntroduction()
    {
        return introduction;
    }
    public void setRegion(String region)
    {
        this.region = region;
    }

    public String getRegion()
    {
        return region;
    }
    public void setNormalIntegral(BigDecimal normalIntegral)
    {
        this.normalIntegral = normalIntegral;
    }

    public BigDecimal getNormalIntegral()
    {
        return normalIntegral;
    }
    public void setVipIntegral(BigDecimal vipIntegral)
    {
        this.vipIntegral = vipIntegral;
    }

    public BigDecimal getVipIntegral()
    {
        return vipIntegral;
    }
    public void setIsVip(Integer isVip)
    {
        this.isVip = isVip;
    }

    public Integer getIsVip()
    {
        return isVip;
    }
    public void setVipTime(Date vipTime)
    {
        this.vipTime = vipTime;
    }

    public Date getVipTime()
    {
        return vipTime;
    }
    public void setDay(Long day)
    {
        this.day = day;
    }

    public Long getDay()
    {
        return day;
    }
    public void setSignTime(Date signTime)
    {
        this.signTime = signTime;
    }

    public Date getSignTime()
    {
        return signTime;
    }

    public String getPlaySeasonRecordId() {
        return playSeasonRecordId;
    }

    public void setPlaySeasonRecordId(String playSeasonRecordId) {
        this.playSeasonRecordId = playSeasonRecordId;
    }

    public void setIsDeleted(Integer isDeleted)
    {
        this.isDeleted = isDeleted;
    }

    public Integer getIsDeleted()
    {
        return isDeleted;
    }
    public void setLogoutTime(Date logoutTime)
    {
        this.logoutTime = logoutTime;
    }

    public Date getLogoutTime()
    {
        return logoutTime;
    }
    public void setLogout(Integer logout)
    {
        this.logout = logout;
    }

    public Integer getLogout()
    {
        return logout;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("nickname", getNickname())
            .append("name", getName())
            .append("avatar", getAvatar())
            .append("mobile", getMobile())
            .append("openId", getOpenId())
            .append("unionId", getUnionId())
            .append("introduction", getIntroduction())
            .append("region", getRegion())
            .append("normalIntegral", getNormalIntegral())
            .append("vipIntegral", getVipIntegral())
            .append("isVip", getIsVip())
            .append("vipTime", getVipTime())
            .append("day", getDay())
            .append("signTime", getSignTime())
            .append("playSeasonRecordId", getPlaySeasonRecordId())
            .append("isDeleted", getIsDeleted())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("logoutTime", getLogoutTime())
            .append("logout", getLogout())
            .toString();
    }
}
